package JDK常用类库.stream;

import org.junit.Test;
import java.util.stream.IntStream;
import java.util.stream.Stream;

/**
 * @Author：russ
 * @Date：2023/8/14
 * @apiNote：
 */
public class StreamTest2 {
    /**
     * 使用 range()：生成一个包含指定范围内所有整数的 Stream。
     */
    @Test
    public void test1(){
        IntStream.range(1, 6)
                .forEach(System.out::println);
    }

    /**
     * 使用 rangeClosed()：生成一个包含指定范围内所有整数（包括端点）的 Stream。
     */
    @Test
    public void test2(){
        IntStream.rangeClosed(1, 5)
                .forEach(System.out::println);
    }

    /**
     * 使用 peek()：对每个元素执行指定的操作，但并不消费元素
     */
    @Test
    public void test7(){
        Stream.of("apple", "banana", "orange", "pear")
                .peek(System.out::println)
                .count();
    }

    /**
     * 使用 boxed()：将 Stream 中的基本类型元素装箱成对应的包装类型
     */
    @Test
    public void test8(){
        IntStream.range(1, 6)
                .boxed()
                .forEach(System.out::println);
    }

    /**
     * 使用 parallel()：返回一个并行的 Stream
     */
    @Test
    public void test9(){
        Stream.of("apple", "banana", "orange", "pear")
                .parallel()
                .forEach(System.out::println);
    }

    /**
     * 使用 sequential()：返回一个顺序的 Stream
     */
    @Test
    public void test10(){
        Stream.of("apple", "banana", "orange", "pear")
                .parallel()
                .sequential()
                .forEach(System.out::println);
    }
}
